package f_innerclass;

/**
 * 测试类，演示对外部类和内部类的操作。
 * @author Cheng-02
 * @version V1.0
 * @Package f_innerclass
 * @date 2024/3/31 下午3:58
 */
public class Test02 {
    public static void main(String[] args){
        // 创建一个Animal类型的对象，实际为Dog类型的实例
        Animal animal = new Dog();
        method(animal);  // 调用method方法，让动物吃东西
        Animal animal2 = method2(animal); // 通过method2方法获取一个新的Animal类型的对象
        animal2.eat(); // 让新获取的动物对象吃东西
    }
    /**
     * 让动物进行吃东西的动作。
     * @param animal 动物对象，必须是Animal类型或其子类型。
     */
    public static void method(Animal animal){
        animal.eat();
    }
    /**
     * 一个返回Animal类型对象的方法。
     * @param animal 输入的动物对象，实际类型为Animal或其子类型。
     * @return 返回一个新的Animal类型的对象，实际为Dog类型的实例。
     */
    public static Animal method2(Animal animal){

        return new Dog();
    }
}

